<?php

defined( 'IN_CLASS' ) or die( 'Access Error!' );

class logincontrol extends control {
	
	public function __construct() {
		
	}
	
	/**
	 * 检查用户名是否存在
	 */
	public function oncheck() {
		$uid = func::input ( 'uid_tmp' );
		$uid = urldecode($uid);
		$aU_t = model::member()->get( $uid );
		if( $aU_t['id'] == $uid ) { //检查用户名是否存在
			echo '1';
		} else {
			echo '0';
		}
		exit;
	}
	
	/**
	 * 登陆操作,返回-1:用户名错误,-2:密码错误,0,不存在的用户名或者还没有审核通过,1正确登陆
	 *
	 * @param string $userid
	 * @param string $upass
	 */
	public function onin( $uid = '', $ajax = true ) {
		if( strlen( $uid ) ) {
			all::$aU = model::member()->get( $uid ); //得到用户信息
			$userid = $uid;
		} else {
			$userid = func::input ( 'id' );
			$userid = urldecode($userid);
			$upass  = strtolower( func::input ( 'pass' ) );

			if ( strlen( $userid ) < 3 ) {
				die( '-1' );//用户名位数错误
			}
			if ( strlen( $upass ) < 6 ) {
				die( '-2' );//密码位数错误
			}
			all::$aU = model::member()->get( $userid ); //得到用户信息
			if ( all::$aU['id'] != $userid ) { //用户ID错误
				die( '-3' );
			}
			if ( all::$aU['pass'] != md5( $upass ) ) { //密码错误
				die( '-4' );
			}
			if ( all::$aU['power'] < 1 ) { //用户权限错误,未审核通过
				die( '-5' );
			}
		}
		
		if ( all::$aU ) {
			$t = time();
			$ip = func::getclientip();
			$aC = array( all::$aU['id'], all::$aU['power'], $t, $ip );//uid,power,time,uip,sign
			$sC = implode( ',', $aC );
			$sign = sha1( $sC . $this->chash );
			$sC .= ",$sign";
			setcookie( 'classauth', $sC );
			
			$ltime = date( 'Y-m-d H:i:s', time() - all::$cfg['suser']['login'][1] * 60 * 60 );
			if ( all::$aU['lastlogin'] < $ltime ) { //给用户加上登陆积分
				model::score()->member_score( all::$aU['id'], all::$cfg['suser']['login'][0] );
			}
			
			model::member()->loginfresh( $userid ); //更新用户最后登陆的资料
			
			$flag = 1;
		} else {
			$flag = 0;
		}
		
		if( $ajax ) {
			echo $flag;
			exit;
		}
		return $flag;
	}
	
	/**
	 * 退出登陆操作
	 */
	public function onout() {
		setcookie( 'classauth', '', -3600 );
		$_COOKIE['classauth'] = '';
		func::redirect( './index.php?m=login&a=index' );
	}
	
	/**
	 * 显示登陆页面
	 */
	public function onindex() {
		func::display( all::$aOut, 'login.htm' );
	}
	
	public function onreg() { //显示注册页面
		all::$aU['id'] = '欢迎注册';
		all::$aOut['mod_name'] = '欢迎注册'; //模块名称
		func::display( all::$aOut, 'reg.htm' );
	}
	
	public function onregin() { //注册用户
		$detail = $this->_genuser();
		$detail['id'] = func::input( 'uid' );
		$detail['pass'] = md5( func::input( 'pass' ) );
		$detail['jointime'] = "NOW()";
		if ( empty( $detail['id'] ) || empty( $detail['pass'] ) || ( $detail['pass'] != md5( func::input( 'rpass' ) ) ) ) {
			func::showerr( '注册失败，错误的用户名或者密码!' );
		}
		if ( model::member()->add( $detail ) ) { //添加注册信息
			if ( !all::$cfg['class']['confirm_new'] ) { //如果注册不需要审核
				model::member()->pass( $detail['id'] ); //注册用户自提升为正式用户
				$this->onin( $detail['id'], false );//内部自动登陆
				func::redirect( './' );
			} else {
				func::showerr( '注册成功，请耐心等待审核通过' );
			}
		} else {
			func::showerr( '注册失败! 请检查您的注册资料是否齐全.' );
		}
	}
	
	public function oncut() { //退出班集
		model::member()->out( $uid );
		func::showerr( '您已经退出本班，请选择！', array( '看看网易新闻', 'http://www.163.com/' ), array( '到天涯灌水', 'http://www.tianya.cn/') );
	}
}